Create Virtual Machine#1
2017/04/25 |
Install GuestOS and create Virtual Machine. This example shows to install Ubuntu.
|
|
[1] | Create a Virtual Machine on text mode via network, it's OK on Console or remote connection with Putty and so on. |
root@dlp:~#
apt -y install libosinfo-bin libguestfs-tools virt-top # create a storage pool root@dlp:~# mkdir -p /var/kvm/images root@dlp:~# virt-install \
--name template \
--ram 4096 \ --disk path=/var/kvm/images/template.img,size=30 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu16.04 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://jp.archive.ubuntu.com/ubuntu/dists/zesty/main/installer-amd64/' \ --extra-args 'console=ttyS0,115200n8 serial'
Starting install... # installation starts # after finishing installation, back to KVM host and shutdown the guest like follows root@dlp:~# virsh shutdown template Domain template is being shutdown # mount guest's disk and enable a service like follows root@dlp:~# guestmount -d template -i /mnt root@dlp:~# ln -s /mnt/lib/systemd/system/getty@.service /mnt/etc/systemd/system/getty.target.wants/getty@ttyS0.service root@dlp:~# umount /mnt
# start guest again, if it's possible to connect to the guest's console, it's OK all root@dlp:~# virsh start template --console Domain template started Connected to domain template Escape character is ^] Ubuntu 17.04 ubuntu ttyS0 ubuntu login: |
For options, make sure 'man virt-install', there are many options.
--name
specify the name of Virtual Machine
--ram
specify the amount of memories of Virtual Machine
--disk path=xxx ,size=xxx
'path=' ⇒ specify the location of disks of Virtual Machine
--vcpus'size=' ⇒ specify the amount of disks of Virtual Machine
specify the virtual CPUs
--os-type
specify the type of GuestOS
--os-variant
specify the kind of GuestOS - list all valid variant with the following command
--network# osinfo-query os
specify network types of Virtual Machine
--graphics
specify the kind of graphics. if set 'none', it means nographics.
--console
specify the console type
--location
specify the location of installation where from
--extra-args
specify parameters that is set in kernel
|
[2] | Move to GuestOS to HostOS with Ctrl + ] key. Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'. |
zapus@ubuntu:~$
# Ctrl + ] key root@dlp:~# # Host's console
root@dlp:~#
zapus@ubuntu:~$ virsh console template # move to Guest Connected to domain template Escape character is ^] # Enter key
# Guest's console
|
[3] | It's easy to clone a virtual machine from existing one to new like follows.
|
# Hosts's console root@dlp:~# virt-clone --original template --name ubuntu1704 --file /var/kvm/images/ubuntu1704.img Allocating 'ubuntu1604.img' | 30 GB 01:02Clone 'ubuntu1604' created successfully. root@dlp:~# ll /var/kvm/images/ubuntu1704.img -rw------- 1 root root 1899888640 May 16 21:05 /var/kvm/images/ubuntu1704.img root@dlp:~# ll /etc/libvirt/qemu/ubuntu1704.xml -rw------- 1 root root 2694 May 16 21:05 /etc/libvirt/qemu/ubuntu1704.xml |